/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo.personas.pacientes;

import java.util.Date;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import javax.persistence.*;
import modelo.patologias.Enfermedad;
import modelo.patologias.Sintoma;
import modelo.personas.profesionales.Profesional;

/**
 *
 * @author raul
 */
@Entity
@Table(name="detalle_historia_clinica")
public class DetalleHistoriaClinica {
    
    @Id @GeneratedValue(strategy=javax.persistence.GenerationType.AUTO)
    private Long id;
    @ManyToOne (targetEntity=Enfermedad.class, cascade = CascadeType.ALL ,fetch=FetchType.LAZY)
    private Enfermedad enfermedad;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date fechaDiagnostico;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date fechaAlta;
    @ManyToOne (targetEntity=Profesional.class, cascade = CascadeType.ALL ,fetch=FetchType.LAZY)
    private Profesional profesional;
    @Column(columnDefinition="text")
    private String padecimiento;
    @ManyToMany (targetEntity=Sintoma.class, cascade = CascadeType.ALL, fetch=FetchType.LAZY)
    private Set<Sintoma> sintomas = new HashSet<Sintoma>();
    private String tensionArterial;
    private int frecuenciaCardiaca;
    private int pulso;
    private int frecuenciaRespiratoria;
    private int temperatura;
    private double peso;
    private double altura;
    private double pesoIdeal;
    @Column(columnDefinition="text")
    private String inspeccionGeneral;
    @Column(columnDefinition="text")
    private String plan;

    public DetalleHistoriaClinica() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Enfermedad getEnfermedad() {
        return enfermedad;
    }

    public void setEnfermedad(Enfermedad enfermedad) {
        this.enfermedad = enfermedad;
    }

    public Date getFechaDiagnostico() {
        return fechaDiagnostico;
    }

    public void setFechaDiagnostico(Date fechaDiagnostico) {
        this.fechaDiagnostico = fechaDiagnostico;
    }

    public Date getFechaAlta() {
        return fechaAlta;
    }

    public void setFechaAlta(Date fechaAlta) {
        this.fechaAlta = fechaAlta;
    }

    public double getAltura() {
        return altura;
    }

    public void setAltura(double altura) {
        this.altura = altura;
    }

    public int getFrecuenciaCardiaca() {
        return frecuenciaCardiaca;
    }

    public void setFrecuenciaCardiaca(int frecuenciaCardiaca) {
        this.frecuenciaCardiaca = frecuenciaCardiaca;
    }

    public int getFrecuenciaRespiratoria() {
        return frecuenciaRespiratoria;
    }

    public void setFrecuenciaRespiratoria(int frecuenciaRespiratoria) {
        this.frecuenciaRespiratoria = frecuenciaRespiratoria;
    }

    public String getInspeccionGeneral() {
        return inspeccionGeneral;
    }

    public void setInspeccionGeneral(String inspeccionGeneral) {
        this.inspeccionGeneral = inspeccionGeneral;
    }

    public String getPadecimiento() {
        return padecimiento;
    }

    public void setPadecimiento(String padecimiento) {
        this.padecimiento = padecimiento;
    }

    public double getPeso() {
        return peso;
    }

    public void setPeso(double peso) {
        this.peso = peso;
    }

    public double getPesoIdeal() {
        return pesoIdeal;
    }

    public void setPesoIdeal(double pesoIdeal) {
        this.pesoIdeal = pesoIdeal;
    }

    public String getPlan() {
        return plan;
    }

    public void setPlan(String plan) {
        this.plan = plan;
    }

    public Profesional getProfesional() {
        return profesional;
    }

    public void setProfesional(Profesional profesional) {
        this.profesional = profesional;
    }

    public int getPulso() {
        return pulso;
    }

    public void setPulso(int pulso) {
        this.pulso = pulso;
    }

    public Set<Sintoma> getSintomas() {
        return sintomas;
    }

    public void setSintomas(Set<Sintoma> sintomas) {
        this.sintomas = sintomas;
    }

    public int getTemperatura() {
        return temperatura;
    }

    public void setTemperatura(int temperatura) {
        this.temperatura = temperatura;
    }

    public String getTensionArterial() {
        return tensionArterial;
    }

    public void setTensionArterial(String tensionArterial) {
        this.tensionArterial = tensionArterial;
    }
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null || !(obj instanceof DetalleHistoriaClinica)) {
            return false;
        }
        final DetalleHistoriaClinica other = (DetalleHistoriaClinica) obj;
        if (!Objects.equals(this.enfermedad, other.getEnfermedad())) {
            return false;
        }
        if (!Objects.equals(this.fechaDiagnostico, other.getFechaDiagnostico())) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 89 * hash + Objects.hashCode(this.enfermedad);
        hash = 89 * hash + Objects.hashCode(this.fechaDiagnostico);
        return hash;
    }
    

}
